/**
 * \file lib/system/task.c
 * \author Davide Gessa
 * \date 10-17-09
 */
#include "task.h"
#include "syscall.h"

/**
 * Restituisce il terminale del processo corrente
 */
term_t *term_get()
{
	regs_t r;
	r.eax = TASK_GET_TERM;
	return (term_t *) syscall_call(r);
}


/**
 * Scrive un carattere su terminale
 */
void term_putch(char ch)
{
	term_t *t = term_get();
	
	if(t->cursor_pos > t->size-2)
	{
		//shift di due byte
	}
	
	t->data[t->cursor_pos] = ch;
	t->cursor_pos++;
	t->data[t->cursor_pos] = t->color;
	t->cursor_pos++;	
}


/**
 * Cambia il colore del terminale
 */
void term_set_color(char cl)
{
	term_t *t = term_get();
	t->color = cl;
}


/**
 * Imposta il titolo del terminale
 */
void term_set_title(char *title)
{
	term_t *t = term_get();
	//strcpy(t->title, title);
}


/**
 * Pulisce il terminale
 */
void term_clear()
{
	
}
